Anchor-less if and each blocks #512
Merged
+464
−128
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
One of the oldest issues — #3. In situations where an if-block or each-block is immediately followed by a DOM node (element, text, or [raw] mustache tag), there's no need to create a comment just to anchor the block to the right location in the DOM; we can just use the following element. The same is true if the block is the last thing inside an element.
Now that we're doing two passes over the markup AST this is reasonably straightforward — we just need to give each DOM node a name in advance, so that on the second pass an if-block or each-block can easily determine whether or not it needs to create a comment node.